<?php
//开启会话
session_start();
function getstr() {
    $charts = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    //随机打乱字符串
    $charts = str_shuffle($charts);
    //获取字符串长度
    $count = strlen($charts);
    //通过索引值获取字符串
    $str = $charts[random_int(0,$count-1)];
    //转换成小写
    return strtolower($str);
}
$width = 90;
$height = 40;
//创建画布
$img = imagecreatetruecolor($width,$height);
//创建颜色 设置背景颜色，颜色必须使用rgb格式
$white = imagecolorallocate($img,0,0,0);
//创建字体颜色
$fontcolor = imagecolorallocate($img,255,255,255);

// 绘制背景图片，吧背景颜色加入图片
imagefilledrectangle($img, 0, 0, $width, $height, $white);

//获取验证码字符，每次一个一共回去4个随机字符串
$code1 = getstr();
$code2 = getstr();
$code3 = getstr();
$code4 = getstr();

//将验证码中的四个字符串保存在session中
$_SESSION['code'] = $code1.$code2.$code3.$code4;

//获取图片
$font = "D:/phpstudy/phpstudy_pro/WWW/2506/admin/assets/fonts/OpenSans-Light.ttf";
imagettftext($img,20,random_int(-15,15),10,30,$fontcolor,$font,$code1);
imagettftext($img,20,random_int(-15,15),25,30,$fontcolor,$font,$code2);
imagettftext($img,20,random_int(-15,15),45,30,$fontcolor,$font,$code3);
imagettftext($img,20,random_int(-15,15),65,30,$fontcolor,$font,$code4);
//绘制干扰线
for($i=0;$i<5;$i++){
    $linecolor = imagecolorallocate($img,random_int(0,255),random_int(0,255),random_int(0,255));
    imageline($img,random_int(0,$width),random_int(0,$height),random_int(0,$width),random_int(0,$height),$linecolor);
}
// 绘制一些点状像素
for($i=0;$i<100;$i++){
    $pointcolor = imagecolorallocate($img,random_int(0,255),random_int(0,255),random_int(0,255));
    imagesetpixel($img,random_int(0,$width),random_int(0,$height),$pointcolor);
}

//输出图片
header("content-type:image/png");
//将图片输出到浏览器
imagepng($img);
//销毁图片
imagedestroy($img);

?>